package com.star.vrserver.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.star.vrserver.entity.User;
import com.star.vrserver.entity.vo.PageVO;
import com.star.vrserver.entity.query.UserQuery;

import java.util.List;

/**
 * @author star
 * @date 2023-03-07 20:04
 * @Description UserODO
 */
public interface UserService extends IService<User> {
    //  分页显示的方法
    default PageVO<User> pageList(long current, long limit) {
        PageVO<User> pageVO = new PageVO<>();
        //创建page对象
        Page<User> page = new Page<>(current, limit);
        //调用方法:底层封装，把分页所有数据封装到pageUser对象里面
        this.page(page);
        //获取总记录数
        long total = page.getTotal();
        //获取最终分页结果集
        List<User> records = page.getRecords();
        //组装userPageVO返回结果
        pageVO.setTotal(total);
        pageVO.setRecords(records);
        return pageVO;
    }
    //  重载：带条件分页
    PageVO<User> pageList(long current, long limit, UserQuery userQuery);
    // 重写添加用户方法：添加密码加密（MD5）
    @Override
    boolean save(User user);
    //  用户登录
    String userLogin(String tel,String pwd);
    //  验证手机号是否可用
    boolean isTelAvailable(String tel);
}
